1. Technical Field of the Invention
The invention relates generally to communication systems; and, more particularly, it relates to equalization that is performed on signals within such communication systems to assist in making more accurate decisions of data contained therein.
2. Description of Related Art
Data communication systems have been under continual development for many, many years. One very critical factor to assist in making proper decisions within digital communication systems is for a sampling point to have a relatively small amount of ISI (Inter-Symbol Interference). This ISI may be viewed as the deleterious effects resulting from one symbol interfering with those symbols adjacent to or near the symbol of interest within a sequence of symbols.
In a communication system that operates using 2 level signals (e.g. 1 and 0 in digital binary), oftentimes pulses are used to represent the logical 1 and 0 values. These 2 level communication systems are also sometimes referred to as polar data communication systems, or NRZ (Non-Return to Zero) communication systems, among other terminology. In such 2 level communication systems, a symbol may also be simply referred to as a bit, and a symbol period may also be referred to as a bit period. These bit periods are arranged in a sequence of bit periods such that each bit period has a bit center substantially located in the middle of the bit period and two bit edges that define the edge-interfaces between the bit period of interest (e.g. where the pulse of interest is located) and the adjacent bit periods.
In some communication systems, these pulses may undesirably interfere with one another as they are being transmitted across a communication channel from a transmitter to a receiver. This communication channel is most oftentimes responsible for causing these deleterious effects.
FIG. 1A is a diagram illustrating a prior art communication system whose communication channel introduces undesirable ISI (Inter-Symbol Interference) to pulses transmitted between a transmitter and a receiver. A pulse that is transmitted from a transmitter to a receiver via the communication channel unfortunately is warped, or spread, by the communication channel itself. In some respects, the communication channel may be viewed as being a filter that warps, or spreads, the transmitted pulse; the filter-like characteristics of the communication channel introduce a degree of attenuation and phase delay, that is non-uniform versus frequency, to the pulses transmitted there through.
Because of this warping, or spreading, of the transmitted pulses from a transmitter to a receiver across the communication channel, pulses that are located in relative close proximity with one another in the sequence of pulses (or sequence of bit periods) may interfere with one another and cause this undesirable ISI. It is also noted that the terminology of transmitter and receiver is used generally here to describe a first device that sends a signal to a second device. In light of this, the first and second devices may be of any number of types of communication devices (e.g. transceivers that include both transmitter and receiver functionality).
FIG. 1B is a diagram illustrating a representation of a sequence of random data of a NRZ (Non-Return to Zero)/2 level signal that can be found in the prior art. This diagram is provided to show the reader an example 2 level signal and the terminology used to describe the various portion of it. As can be seen in the diagram, the bit periods are arranged in a sequence such that the bit edges of any bit period line up with the bit edges of the adjacent bit edges. Ideally, the 2 level signal will have a signal value of either +1 or −1 at any given bit center. This bit center region is typically viewed as being the optimal sampling point within a bit period.
The vertical distance between the 2 levels to which the signal may vary is referred to as the eye height, H, and the horizontal distance between any two bit edges referred to as the eye width, W. While the actual signal values to which the signal varies are typically referred to as +1 or −1, the binary assignment of these values two values may be made as actual signal value +1 being assigned to a binary value of 1, and actual signal value −1 being assigned to a binary value of 0. The alternate binary assignment may also be made. For example, binary assignment of these values two values may be made as actual signal value +1 being assigned to a binary value of 0, and actual signal value −1 being assigned to a binary value of 1.
FIG. 2 is a diagram illustrating a prior art continuous time pulse response within a communication system. This diagram is provided to show how positive and negative valued pulses are sometimes employed to assist in ensuring that a zero crossing takes place at a particular location. A positive pulse and a negative pulse are provided from a transmitter to ensure that a zero crossing takes place precisely at a bit edge. This pulse sequence may be employed when a signal is to make a transition from one level of the 2 levels to the other level of the 2 levels. While this particular pulse sequence is shown as having a positive pulse followed by a negative pulse to generate a transition from the −1 signal level to the +1 signal level, but this pulse sequence could also be made in the opposite order as well.
Within such 2 level communication systems, there have been many efforts in the prior art to try to minimize these deleterious effects of ISI between the various bit periods. One approach has been to employ a prior art BC-ZFE (Bit-Center Zero Forcing Equalizer).
FIG. 3A is a diagram illustrating a prior art BC-ZFE (Bit-Center Zero Forcing Equalizer) signal shaping approach to send a logical 1. In this example, a combination of three separate pulses is employed to send a logical value of 1 (e.g., an actual signal value of +1). In this example, three pulses are all combined, and appropriately weighted according to the BC-ZFE approach, to generate a pulse that is to be transmitted from a transmitter to a receiver across the communication channel. The pulse that is to be transmitted is composed of one positively valued pulse and two separate negatively valued pulses. The relative weighting is +1.0 for the positively valued pulse, and −0.1 and −0.5, respectively, for the two separate negatively valued pulses. Each of these weighting values may be viewed as being filter tap coefficients within a BC-ZFE filter that is used in performing the operation of the BC-ZFE.
As can be seen in the diagram, the pulses are also shifted in time with respect to one another by one bit time (e.g., one bit period). This is known as symbol-spaced equalization to generate the desirable shaped pulse according to the BC-ZFE approach. When appropriately combined, these three pulses generate a pulse that is shaped according to a sinc function whose maximum value is appropriately located at the bit center of the bit period of interest, and the signal waveform also has zero crossings at the bit centers of the bit periods that are adjacent and neighboring the bit period of interest (e.g., the bit period in which the pulse is located). As is described in more detail below, the ISI of this generated signal waveform is minimized at the bit centers of the bit periods that are adjacent and neighboring the bit period of interest.
In the classic BC-ZFE, a pulse that is to be transmitted is shaped using a finite number of filter taps to modify the pulse into a sinc function (e.g., sinc(f) where f is frequency, and the sinc function is substantially centered at the bit center of the bit period of interest). The classic BC-ZFE takes the values of the pulse response at the bit centers of the adjacent and neighboring bit periods and drives the error terms associated therewith to zero.
The generation of the BC-ZFE filter tap coefficients may be performed as described below. Initially, the communication channel characteristic information, HBC, is determined (as shown by the matrix below in this example as being the pulse response of a communication channel).
      H    BC    =      (                            365                          88                          5                          2                          1                          1                          0                          0                          0                                      191                          365                          88                          5                          2                          1                          1                          0                          0                                      86                          191                          365                          88                          5                          2                          1                          1                          0                                      47                          86                          191                          365                          88                          5                          2                          1                          1                                      29                          47                          86                          191                          365                          88                          5                          2                          1                                      20                          29                          47                          86                          191                          365                          88                          5                          2                                      15                          20                          29                          47                          86                          191                          365                          88                          5                                      11                          15                          20                          29                          47                          86                          191                          365                          88                                      9                          11                          15                          20                          29                          47                          86                          191                          365                      )  
This communication channel characteristic information, HBC, may be viewed as any number of things including the interference of the communication channel, the SNR (Signal to Noise Ratio) of the communication channel, the number of users of the communication channel, and also other operational characteristics of the communication channel. Once the communication channel characteristic information, HBC, has been determined, then the errors associated with the bit centers of the bit periods that are adjacent and neighboring the bit period of interest are addressed.
According to the prior art approach provided by the BC-ZFE, the metric that is employed to minimize the undesirable ISI is based on what is widely deemed to be the optimal sampling point of a bit period, namely, the bit centers of the bit periods. That is to say, the classical BC-ZFE approach looks only at the bit centers (e.g., the centers of the bit time periods) to generate the error correction metric. The prior art approach employs this BC-ZFE approach to any manner in which it is implemented. For example, whether it is a feedback or feedforward implementation, the classic BC-ZFE approach is implemented only to minimize the ISI substantially at the bit centers of the bit periods.
These error portions (at the bit centers of those bit periods) are referenced by the BC-ZFE pulse mapping vector, hBC, that is shown as follows:
      h    BC    =      (                            0                                      0                                      0                                      0                                      1                                      0                                      0                                      0                                      0                      )  
A filter having a finite number of filter taps may be employed to implement a prior art BC-ZFE. The BC-ZFE filter tap coefficients, HBC-ZFE, may be calculated by taking the inverse of the communication channel characteristic information, HBC, multiplied by the BC-ZFE pulse mapping vector, hBC. If desired, this resultant may undergo normalization as well. This process of calculating the BC-ZFE filter tap coefficients, HBC-ZFE, is shown below.
      H          BC      -      ZFE        =            H      BC              -        1              ·          h      BC        ·          (              1000        3.606            )      
Using the values shown above for the communication channel characteristic information, HBC, and for the BC-ZFE pulse mapping vector, hBC, the BC-ZFE filter tap coefficients, HBC-ZFE, are in the vector below. The calculation of the BC-ZFE filter tap coefficients, HBC-ZFE, may be described mathematically as follows.
      H          BC      -      ZFE        =      (                            0.003                                                  -            0.017                                                0.060                                                  -            0.263                                                1.000                                                  -            0.480                                                0.051                                                  -            0.023                                                            -            0.005                                )  
FIG. 3B is a diagram illustrating a prior art eye diagram of a BC-ZFE signal shaping approach showing the relative location of ISI therein. As can be seen, by optimizing to the sampling points of the bit periods (e.g., the bit centers of the bit periods), the ISI is in fact substantially eliminated (or at least substantially minimized) at those respective bit centers. However, one of the most undesirable deleterious effects of this prior art BC-ZFE approach is that there still can be very significant ISI at the non-bit center locations within the respective bit periods. Generally speaking, the ISI can go along virtually any trajectory or path between the zero forced ISI locations at the bit centers of the corresponding bit periods.
It is pointed out that the value at the bit center of any bit period is reduced to be just one of 2 separate values (e.g., +1 or −1). This classic prior art BC-ZFE approach is an optimal condition in the presence of a magnitude (or an amplitude) noise limited system. Amplitude noise will represent a distribution on each of the +1 or −1 values. Errors are minimized when these two distributions are spaced as far apart as possible. Although an increased gain may be employed to separate the +1 and −1 values, such an increase in gain also comes with an increase in the noise so there is oftentimes no overall benefit in doing so. It can be seen that there is only an indirect reduction in the phase jitter. While the amplitude noise reduction approach provided by the BC-ZFE may be appropriate for some applications, it does not necessarily fare well for jitter noise limited systems. For example, a BC-ZFE can leave considerable phase jitter which is inherently a significant problem for phase noise limited communication systems.
This sometimes very large ISI at the other locations within the bit periods besides the bit centers can incur a heavy cost in terms of performance. For example, this undesirable ISI can be very difficult to deal with when actually implementing a BC-ZFE within a communication device (e.g., in hardware). For example, in very high-speed data links (one example being: 10 Gbps (Giga-bits per second) over 24 inches of an FR4 communication channel, which is at the further edge of the state of the art in 2004) using practical clock generation technology, the jitter on a sampling clock can be a significant portion of a bit period. A secondary issue is a relatively significant number of filter taps are often required to implement a BC-ZFE effectively. In some instances, as many as 5 or 7 filter taps are required to get the ISI down to a sufficiently low level at the bit centers of the bit periods that are adjacent and neighboring the bit period of interest. To build a device having this many filter taps inherently requires a large device with many functional blocks included therein. Moreover, not only must a BC-ZFE often have a significant number of filter taps, but the coefficient values that correspond to those filter taps are relatively large in value. These relatively large filter tap coefficient values require functional blocks within the communication device that can deliver relatively large drive currents.
The combined effect of requiring many filter taps along with the relatively large filter tap coefficient values, thereby requiring devices with larger components therein, can often result in a communication device that does not always meet design operational criterion. For example, the relatively large size of the communication device can result in significant parasitic loading because of the increased parasitic capacitance of the relatively large device. Also, because so many filter taps are often required, a relatively high number of high speed delay elements is often required. These high speed delay elements can require a significant degree of buffering and clock signaling. These are but some of the many deleterious effects that can be incurred when using a prior art classic BC-ZFE approach to signal shaping. As such, there is a need in the art for a better way in which equalization may be performed to assist in signal shaping so that accurate decision making may be made at a receiver end of a communication channel of the information bits transmitted thereto.